package com.itcast.service.base;

import java.util.LinkedHashMap;

import com.itcast.bean.QueryResult;

public interface DAO {
	/**
	 * 保存实体
	 * @param entity
	 */
	public void save(Object entity);
	/**
	 * 更新实体
	 * @param entity
	 */
	public void update(Object entity);
	//删除的方法
	public <T> void  delete(Class<T> entityClass,Object entityid);
	public <T> void delete(Class<T> entityClass,Object[] entityids);
	/**
	 * 获取实体
	 * @param entityClass 实体类
	 * @param entityId 实体ID
	 * @return
	 */
	public <T> T find(Class<T> entityClass,Object entityId);
	/**
	 * 获取分页数据
	 * @param entityClass 实体类
	 * @param firstndex 开始索引
	 * @param Maxresult 需要获取的记录数
	 * 	实体的属性，Asc／Desc
	 *  order by key1 desc,key2 asc
	 *  使用HashMap 会使的添加的元素重排序，所以用LinkedHashMap
	 * @return
	 */

	public <T> QueryResult<T> getScrollData(Class<T> entityClass,int firstindext,int maxresult,String wherejpql,Object[] queryParams,LinkedHashMap<String, String> orderby);
	public <T> QueryResult<T> getScrollData(Class<T> entityClass,int firstindext,int maxresult,String wherejpql,Object[] queryParams);

	public <T> QueryResult<T> getScrollData(Class<T> entityClass,int firstindext,int maxresult,LinkedHashMap<String, String> orderby);
	public <T> QueryResult<T> getScrollData(Class<T> entityClass,int firstindext,int maxresult);
	public <T> QueryResult<T> getScrollData(Class<T> entityClass);
}

